package com.itheima.reggie.common.exception.catchs;

import com.itheima.reggie.common.Result;
import com.itheima.reggie.common.exception.BusinessException;
import com.itheima.reggie.common.exception.SystemException;
import com.itheima.reggie.common.exception.UnknownException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author Yan
 * @date 2022/2/24
 */

@RestControllerAdvice
@Slf4j
public class CatchHandleException {

    @ExceptionHandler(SystemException.class)
    public Result<String> handleSystemException(SystemException e){
        //1. 保存现场，记录日志
        log.info("出现异常"+e.getMessage());
        //2.通知系统管理员

        //3. 给用户一个友好的提示

        return Result.error(e.getMessage());

    }

    @ExceptionHandler(UnknownException.class)
    public Result<String> handleUnknownException(UnknownException e){
        //1. 保存现场，记录日志
        log.info("出现异常：{}",e.getMessage());
        //2.通知系统管理员

        //3. 给用户一个友好的提示

        return Result.error(e.getMessage());

    }

    @ExceptionHandler(BusinessException.class)
    public Result<String> handleUnknownException(BusinessException e){
        //1. 保存现场，记录日志
        log.info("出现异常：{}",e.getMessage());
        //2.通知系统管理员

        //3. 给用户一个友好的提示

        return Result.error(e.getMessage());

    }

}
